Learn R Programming

Directional (version 4.0)

Rotation matrix on SO(3) from three Euler angles: Construct a rotation matrix on SO(3) from the Euler angles.

Description

It forms a rotation matrix X on SO(3) by using three Euler angles \((\theta_{12}, \theta_{13}, \theta_{23})\), where X is defined as \(X=R_z(\theta_{12}) \times R_y(\theta_{13}) \times R_x( \theta_{23} )\). Here \(R_x (\theta_{23})\) means a rotation of \(\theta_{23}\) radians about the x axis.

Usage

eul2rot(theta.12, theta.23, theta.13)

Arguments

theta.12

An Euler angle, a number which must lie in \((-\pi, \pi)\).

theta.23

An Euler angle, a number which must lie in \((-\pi, \pi)\).

theta.13

An Euler angle, a number which must lie in \((-\pi/2, \pi/2)\).

Value

A roation matrix.

Details

Given three euler angles a rotation matrix X on SO(3) is formed using the transformation according to Green and Mardia (2006) which is defined above.

References

Green, P. J. \& Mardia, K. V. (2006). Bayesian alignment using hierarchical models, with applications in proteins bioinformatics. Biometrika, 93(2):235--254.

See Also

rot2eul

Examples

Run this code
# NOT RUN {
# three euler angles

theta.12 <- sample( seq(-3, 3, 0.3), 1 )
theta.23 <- sample( seq(-3, 3, 0.3), 1 )
theta.13 <- sample( seq(-1.4, 1.4, 0.3), 1 )

theta.12 ; theta.23 ; theta.13

X <- eul2rot(theta.12, theta.23, theta.13)
X  # A rotation matrix
det(X)

e <- rot2eul(X)$v1

theta.12 <- e[3]
theta.23 <- e[2]
theta.13 <- e[1]

theta.12 ; theta.23 ; theta.13
# }

Run the code above in your browser using DataLab